<?php
/*
*
* dtapi 自动加载类 loader
* 项目官网： www.dtapi.cn
* 这是一个完全开源免费的项目，您可以任意使用；我们唯一的要求就是保留本信息，当然您也可以在后面添加自己的版权信息，我们支持任何人使用本软件进行任何商业的非商业用途。
* 如果您有问题或者有更好的想法可以加群 61291160 一起讨论。
* -- 高飞
*
*/
namespace dtapi;
class loader {
    static function load($name) {
        /*
         * thinkphp5 支持
         * think 为thinkphp的系统命名空间
         * traits 为thinkphp 的traits目录的命名空间
         * app 为thinkphp 的应用命名空间
         * 开发者必须严格按照thinkphp5 默认的命名空间命名方法命名,否则会造成DTapi和thinphp5的自动加载冲突
         */
        if(strstr($name,'think') || strstr($name,'traits') || (strstr($name,'app') && !strstr($name,'dtapp'))) return false;

        $file = self::namespaceASfile($name);

        if ($file) {

            return include $file;
        }
    }
    
    static function namespaceASfile($name){
        $data = explode('\\', $name);
        $classname = array_pop($data);
        if(in_array('dtapp',$data)){
            $classdir = DTAPI_AUTHOR_ROOT.$data[1].'/';
            if(in_array('model',$data)){
                $path = $classdir.'model/'.$classname.'.php';
            }elseif(in_array('ext',$data)){
                $path = $classdir.'ext/'.$classname.'.php';
            }else{
                $path = $classdir.'controller/'.$classname.'.php';
            }
        }elseif(in_array('dtapi',$data)){
            $classdir = DTAPI_ROOT.'dtapi/';
            $path = $classdir.$classname.'.class.php';
        }elseif(in_array('helpers',$data)){
            $classdir = DTAPI_ROOT.'helpers/';
            $path = $classdir.$classname.'.class.php';
        }else{
            return null;
        }

        if (file_exists($path)) {
            return $path;
        }

        return null;
    }
    
    

}
spl_autoload_register('\DTapi\loader::load');
